package neu.soft.mapper;

import neu.soft.entity.Inventory;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface InventoryMapper {
    /**
     * 通过商品代码查询库存商品
     * @author zhh
     * @param map
     * @return
     */
    List<Map<String,Object>> queryInventoryInfo(Map<String,Object> map);

    /**
     * 查找所有库存商品
     * @author zhh
     * @return
     */
    List<Map<String,Object>> showAllInventory(Map<String,Object> map);

    /**
     * 添加库存商品
     * @author zhh
     * @param inventory
     * @return
     */
    int addInventory(Inventory inventory);

    /**
     * 根据商品代码和所属库房ID删除商品信息
     * @author zhh
     * @param map
     * @return
     */
    int deleteInventory(Map<String,Object> map);

    /**
     * 增加指定分站库房的特定商品的数量
     * @author zhh
     * @param map
     * @return
     */
    int increaseInventoryNum(Map<String,Object> map);

    /**
     * 减少指定库房的商品数量
     * @param map
     */
    void decreaseInventoryNum(Map<String,Object> map);

    /**
     * 根据库房编号和商品代码查询商品数量
     * @param map
     * @return
     */
    int queryInventoryNum(Map<String,Object> map);

    /**
     * 根据所给条件返回数据库中有多少条数据,map中可以包含code
     * @param map
     * @return
     */
    Long getInventoryRows(Map<String,Object> map);

    /**
     * 根据商品代码查找中心库房中的商品
     * @author zhh
     * @param code
     * @return
     */
    Inventory queryInventoryByCodeList(String code);

    int existInventory(Map<String,Object> map);

    List<Map<String,Object>> queryInventoryByWarehouseId(int warehouseId);
}
